import { getRole } from '@u'
import { cloneDeep } from 'lodash'
export default {
  namespaced: true,
  state: {
    // 存储 当前 所有的 导航目录菜单
    navs: [
      {
        label: '仪表盘',
        icon: 'Compass',
        path: '/dashBoard',
        isMenu: false, // 代表是否是目录
        roles: '*' // 所有角色都可以显示
      },
      {
        label: '商品',
        icon: 'Goods',
        isMenu: true,
        roles: ['admin', 'a', 'b'],
        children: [
          {
            path: '/itemLists',
            label: '商品管理',
            roles: ['admin', 'a', 'b']
          },
          {
            path: '/cateLists',
            label: '商品分类管理',
            roles: ['admin', 'a', 'b']
          }
        ]
      },
      {
        label: '个人中心',
        icon: 'User',
        path: '/userInfo',
        roles: ['admin', 'a', 'b'],
        isMenu: false // 代表是否是目录
      },
      {
        label: '设置',
        icon: 'Setting',
        path: '/setting',
        roles: ['a', 'b'],
        isMenu: false // 代表是否是目录
      }
    ]
  },
  getters: {
    auth_menus (state) {
      // 对于 navs进行过滤
      // 获取用户role
      const navs = cloneDeep(state.navs)
      const role = getRole()
      const authMenus = []
      navs.forEach(menu => {
        if (menu.roles === '*' || menu.roles.includes(role)) {
          // 根据判断是否是 目录 进行二次循环
          if (menu.isMenu) {
            // 继续过滤children
            menu.children.filter(subMenu => subMenu.roles === '*' || subMenu.roles.includes(role))
          }
          authMenus.push(menu)
        }
      })
      return authMenus
    }
  }
}
